<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- 快速写法 :ul>li*10{$} -->
 
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
        <li>10</li>
    </ul>
</body>
<script>
    //对象和数组的转化
    var obj={
        name:'zs',
        age:12,
        gender:"男"
    }
    // //将对象的键取出来成为一个数组
    // var arr=Object.keys(obj)
    // console.log(arr);
    // //将对象的键的值取出来成为一个数组
    // var brr=Object.values(obj)
    // console.log(brr);

    // //将对象的键和值（键值对）取出来成为一个数组
    var crr=Object.entries(obj)
    console.log(crr);

    // var drr=[{count:1},{count:2},{count:3}].reduce((p, e)=>p+(e.count), 0)
    // console.log(drr);







    var arr = [1, 2, 11, 12, 13, 14, 11, 2, 2, 1, 11, 13, 1, 14, 14]
    //第一种,利用indexof 非常好用
    var brr = []
    for (var i = 0; i < arr.length; i++) {
        // if(brr.indexOf(arr[i])==-1){
        //     brr.push(arr[i])
        // }

        //同理includes方法也适用
        if (!brr.includes(arr[i])) {
            brr.push(arr[i])
        }
    }
    console.log(brr);



    //第二种，两次循环，可以对数组进行去重,会改变原数组
    for (var i = 0; i < arr.length; i++) {
        for (var j = i + 1; j < arr.length; j++) {
            if (arr[i] == arr[j]) {
                arr.splice(j, 1)
                j--//会出现数组塌陷
            }
        }
    }
    console.log(arr);


    //利用对象的键唯一性

    var obj = {}
    for (var i = 0; i < arr.length; i++) {
        obj[arr[i]] = 'sdsd'
    }
    console.log(obj);

    var newbrr = []
    for (var key in obj) {
        // console.log(key)
        newbrr.push(key - 0)
    }
    console.log(newbrr);
    // //数组reduce方法
    // arr.reduce((total,cur,index,arr)=>{
    //     console.log(total+'***'+cur+'****'+index);
    // })


    // var brr=[1,2,3,4]
    // console.log(brr);
    var str = 'sdadsa'
    console.log(str - 0);


    var drr = [1, 2, 23, 34, 45]
    // console.log(drr[drr.length-1]);

    function insert(drr, num) {
        if (num <= drr[0]) {
            drr.unshift(num)
        }
        if (num >= drr[drr.length - 1]) {
            drr.push(num)
        }
        console.log(drr);
    }
    insert(drr, 50)

    var str = 'fdgseweq'
    // var str=str.split('').reverse().join('')

    //方法二 
    var s = ''
    for (var i = str.length - 1; i >= 0; i--) {
        // console.log(str[i]);
        s += str[i]
    }
    console.log(s);
    // console.log(str);

    var ss = 'sfsdfsffdgdfcdff' ///把s替换成*

    console.log(ss.split(''));

    //函数体内写return只能阻断当前函数内的代码，不能阻断函数体外的代码

    var crr = [1, 2, 3, 45, 56, 7]
   // forEach,map等方法在函数体内return只会阻断当前这一次的循环
    // crr.forEach((item, index) => {

    //     if (index > 2) {
    //         return
    //     }
    //     console.log(item);
    // })
    function fn(){
        for(var i=0;i<crr.length;i++){
    console.log(i);
    if(i==3){
        return 
    }
    }
    }
    fn()
  
    console.log("吃饭了吗");
</script>

</html>